package config

import (
	"context"

	"github.com/glennliao/apijson-go/config"
	"github.com/gogf/gf/v2/util/gconv"
)

// 请求列表提供者 从JSON字符串创建请求配置列表
func Q请求列表提供者(ctx context.Context, json字符串 string) config.Q请求列表提供者 {

	return func(ctx context.Context) []config.Q请求配置 {
		var 请求列表 []config.Q请求配置
		错误 := gconv.Scan(json字符串, &请求列表)
		if 错误 != nil {
			panic(错误)
		}
		for i, 请求 := range 请求列表 {
			if _, 存在 := 请求.J结构定义[请求.B标签]; !存在 {
				请求列表[i].J结构定义 = map[string]*config.J结构定义{
					请求.B标签: {
						B必填字段: nil,
						J拒绝字段: nil,
						W唯一字段: nil,
						C插入字段: nil,
						G更新字段: nil,
						T替换字段: nil,
						Y移除字段: nil,
					},
				}
			}
		}
		return 请求列表
	}

}

// 访问列表提供者 从JSON字符串创建访问配置列表
func F访问列表提供者(ctx context.Context, json字符串 string) config.F访问列表提供者 {
	return func(ctx context.Context) []config.F访问配置结构 {
		var 访问列表 []config.F访问配置结构
		错误 := gconv.Scan(json字符串, &访问列表)
		if 错误 != nil {
			panic(错误)
		}
		return 访问列表
	}
}
